This invention relates to printers, and more particularly, to a method and apparatus for assuring that a constant speed print mechanism has rasterized data awaiting printing.
Prior art page printers capture an entire page image before any images are placed on paper. In printers which employ laser engines as the xe2x80x9cprint mechanismxe2x80x9d, data must be provided at a speed that is fast enough to keep up with the print action. In such printers, formatting is either performed on the host computer, with large volumes of rasterized image data shipped to the printer at high speed, or on a formatter within the printer itself. Since a laser printer engine operates at a constant speed, if rasterized image data is not available when a previous segment of image data has been imprinted, a xe2x80x9cprint overrunxe2x80x9d occurs and the page is not printable.
Various methods have been used in the prior art to avoid print overruns. For example, a full raster bit map of an entire page has been stored in the printer so that the print mechanism always has rasterized data awaiting printing. This solution requires large amounts of random access memory for each page. A main method for assuring the availability of print data to a laser printer constructs a display list and builds a page description in two steps. During formatting, a page description received from a host is converted into a series of simple commands, called display commands, that describe what must be printed. The display commands are parsed and the described objects are then rendered into a raster bit map.
The prior art has improved on the main method by sorting display commands according to their vertical position on a page. The page is then divided into sections called page strips, which page strips are then individually rasterized and passed to the print engine for printing. When the display commands are rasterized at a fast enough pace, the same memory used to store a first page strip can be reused for a subsequent page strip further down the page. However, under certain circumstances, certain page strips will include many display commands and thus require a longer than normal time for rasterization.
In the previously marketed laser printers, three raster buffers have been employed, with the first buffer being reused for a fourth strip on a page, the main reused for a fifth strip, etc. In the case of a complex strip, rasterization time could increase to such an extent that a succeeding page strip could not be delivered on time and a print overrun would occur.
In U.S. Pat. No. 5,129,049 to Cuzzo et al., a page printer is described which addresses the problem created by complex page strips. Cuzzo et al. divide each page of text into lateral page strips and allocate a page strip rasterization time to each page strip, based upon the printer""s page print time. A rasterization time for each page strip is then calculated, based upon the complexity of the display commands contained within the page strip. If rasterization time for a page strip exceeds the allocated page strip rasterization time, indicating a xe2x80x9ccomplexxe2x80x9d page strip, the page strip is rasterized before the print engine is started. Otherwise, the display commands for the page strip are inserted into a queue and are rasterized in order as they are reached, after the print engine commences printing. Whenever a complex page strip is reached for processing, its pre-rasterized version is immediately accessed and employedxe2x80x94thereby preventing a print overrun.
One drawback of the Cuzzo et al procedure is that page throughput for the printer is somewhat affected by the prerasterization actions since time must be taken to accomplish prerasterization before the paper is started to move through the printer. This delay, added to other page processing times, causes a limitation on the page printing capability of the printer.
In U.S. Pat. No. 5,444,827, a page printer is disclosed that includes a variable frequency clock for producing at least two clock frequencies, one higher than the other. The page printer stores a page processing procedure and data comprising full page strips. A processor operates at the first clock frequency in conjunction with the page processing procedure and derives a rasterization execution time (RET) for display commands to be printed in each page strip of a page. The processor compares the RET for each page strip with a threshold value and rasterizes, in a standard manner, any page strip whose RET is equal to or less than a threshold value (while operating under the influence of the first clock frequency). When a complex page strip is found (whose RET exceeds the threshold), the variable frequency clock is controlled to generate the main higher frequency clock signal and thus causes the processor to operate at a rate determined by the higher clock frequency so that display commands in the complex page strip are rasterized at a higher speed. While the Briggs et al. procedure enabled on-the-fly rasterization of complex page strips, extended operation of the processor at the higher clock frequency could lead to overheating problems.
Accordingly, it is an object of this invention to provide an improved method and apparatus for reducing the possibility of print overruns in a constant speed print mechanism.
It is another object of this invention to provide an improved method for preventing print overruns which enables on-the-fly rasterization of at least some complex page strips, without leading to overheating problems.
A page printer stores a page processing procedure that includes code for converting display commands to a rasterized image and further stores display commands allocated to plural page strips of a page. The page includes N page strips. The printer includes a print engine adapted to print one page per X units of time, an auxiliary processor adapted to operate in conjunction with said page processing procedure and a main processor. The main processor is operable in conjunction with the page processing procedure and (i) determines an amount of processing time required to process each page strip of a page into rasterized image data; and (ii) for a page strip whose processing time exceeds X/N units of time, determines if sufficient time is available, once the print engine commences printing said page, to convert the page strip from display commands to a rasterized image before the rasterized image is to be rendered by the print engine. If yes, the main processor assigns the page strip to be processed by the auxiliary processor. Otherwise, if the page strip processing time does not exceed X/N units of time, the main processor processes the page strip.